#include "Floor.h"

//
//Constructors
//
//Don't call this ever
Floor::Floor(){};

Floor::Floor(int cx, int cy, int cz, ObjectType object)
{

	x = cx; y = cy; z = cz;
	flrObj = object;
	type = NORMAL;
}

//Extra bit doesn't apply
Floor::Floor (int cx, int cy, int cz, int extraBit, ObjectType object){


}

Floor::Floor (int cx, int cy, int cz, int extraBit){
	x = cx; y = cy; z = cz;
	flrObj = NONE;
	type = NORMAL;
}

Floor::Floor (int cx, int cy, int cz){
	x = cx; y = cy; z = cz;
	flrObj = NONE;
	type = NORMAL;
}

Floor::~Floor(void)
{
}

//
//Getters
//
int Floor::getX(){	return x;}

int Floor::getY(){	return y;}

int Floor::getZ(){	return z;}

FloorType Floor::getType(){return type;}

ObjectType Floor::getObjectType(){	return flrObj;}

FloorState Floor::getFloorState(){ return state;}

//
//Setters
//
void Floor::changeObject(ObjectType type){	flrObj = type;}

void Floor::changeState(FloorState cState){state = cState;}

//
//Virtual Methods
//
void Floor::walkOnEvent()
{
	// WALK ON EVENT FOR THE FLOOR
	// WILL BE APPLICABLE FOR REACTIVE
	// FLOOR TYPES
}

void Floor::walkOffEvent()
{
}

bool Floor::freeSpace()
{
	// IF THERE IS NO FLOOR OBJECT,
	// RETURN TRUE
	if (flrObj == 0)
	{
		return true;
	} else {
		return false;
	}
}